#ifndef __LINKQUEUE_H__
#define __LINKQUEUE_H__
typedef int LElemType;
#define null NULL
typedef struct node
{
    LElemType data;

    struct node *next;
    struct node *prev;
} DNODE;
typedef struct tou
{
    int lenth;
    DNODE *first;
    DNODE *tail;
    DNODE *now; // 当前结点

} List; // 定义链队列

List *Dlist_Init();                                 // 初始化链队列
int Dlist_Print(List *list);                        // 打印链队列
int Dlist_InsHead(List *list, LElemType data);      // 插入链队列头
int Dlist_InsTail(List *list, LElemType data);      // 插入链队列尾
DNODE *Dlist_DeleForNode(List *list, DNODE *pdel);  // 删除链队列中值为data的结点
int Dlist_DeleForData(List *list, LElemType data);  // 删除链队列中值为data的结点
int Dlist_GetHeadData(List *list, LElemType *data); // 获取链队列头结点值
int Dlist_GetTailData(List *list, LElemType *data); // 获取链队列尾结点值
int Dlist_IsEmpty(List *list);                      // 判断链队列是否为空
int Dlist_Clear(List *list);                        // 清空链队列
List *Dlist_Destory(List *list);                    // 销毁链队列
int Dlist_InsUp(List *list, LElemType data);        // 以升序插入链队列
int Dlist_GetNowData(List *list, LElemType *data);  // 获取当前结点值
#endif